home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
gnu
/
gawk
/
gawk213b.zoo
/
test
/
lisp
/
sets.w
< prev
next >
Wrap
Text File
|
1991-05-21
|
726b
|
31 lines
; set operations on lists
(set 'union
'(lambda (x y)
(cond ((null x) y)
((member (car x) y) (union (cdr x) y))
(t (cons (car x) (union (cdr x) y))))))
(set 'intersection
'(lambda (x y)
(cond ((null x) nil)
((member (car x) y)
(cons (car x) (intersection (cdr x) y)))
(t (intersection (cdr x) y)))))
(set 'ldifference
'(lambda (in out)
(cond ((null in) nil)
((member (car in) out) (ldifference (cdr in) out))
(t (cons (car in) (ldifference (cdr in) out))))))
(set 'subsetp
'(lambda (a b)
(cond ((null a) t)
((member (car a) b) (subsetp (cdr a) b))
(t nil))))
(set 'samesetp
'(lambda (a b)
(and (subsetp a b) (subsetp b a))))